In computers, executables may be downloaded and installed onto a machine for the purpose of executing a set of instructions. One form of executable is a file that contains a program—that is, a particular kind of file that is capable of being executed. In this context, execution may refer to the process of running the program or performing an operation called for by an instruction contained therein. Thus, a computer processor may, for example, execute the instruction, meaning that it performs the operations called for by that instruction.
Executables may include a wide variety of computer programs, including, for example, application programs, such as spreadsheets and word processors. In a Disk Operating System (DOS) or Windows operating system, the executable may have, for example, a file name extension of .bat, .com, or .exe. Such executables may sometimes be referred to as binaries since the format of the executable includes a sequence of binary values.
Executables may also include, for example, an applet, which is a program designed to be executed from within another application residing, for example, on remote machine. Unlike an application, applets may be restricted from direct execution within the operating system. Applets may be mini-programs that are downloaded and used by any computer equipped, for example, with a Java-compatible browser. In this context, Java refers to the programming language designed primarily for writing software on World Wide Web sites and downloaded over the Internet to a personal computer (PC).
Executables may also include, for example, a Windows Programming Interface 32-bit subset, sometimes referred to as Win32s, which is a software package that may be added to Windows 3.1 and Windows for Workgroups systems to give them the ability to run 32-bit applications. In this regard, Win32s may be used to convert between 32-bit and 16-bit memory addresses, an operation called “thunking”. When installing such an application on a 16-bit Windows system, the installation procedure may automatically install the Win32s system if necessary.
Executables that are not stored and executed in a tamper-proof environment may be reversed engineered, and may be used to obtain identification credentials. Moreover, executables such as an applet or Win32s may return structured information, whose form may be static and widely known. Accordingly, the executables may be susceptible to reverse engineering and therefore unsuitable for authentication and authorization.
Authentication typically includes the process of identifying an entity, for example based on a username and password. In security systems, authentication may be regarded as distinct from authorization, which is the process of giving an entity access to protected resources based on their identity. Accordingly, authentication may ensure that the entity is who it claims to be, while authorization may determine the access rights of the entity.